package com.jdbc.framemain;
/**
 * @function:用户登录界面实现，跳转到监测数据界面
 */

import java.awt.Font;
import java.sql.DriverManager;


import java.sql.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import javax.swing.*;

public class setupframe extends JFrame{
    public static Connection con=null;
    private static JButton bt1;//登陆按钮
    private static JButton bt2;//忘记密码按钮
    private static JLabel jl_1;//登录的版面
    private static JFrame jf_1;//登陆的框架
    private static JTextField jtext1;//用户名
    private static JPasswordField jtext2;//密码
    private static JLabel jl_admin;
    private static JLabel jl_password;
    public setupframe (){//初始化登陆界面
        Font font =new Font("黑体", Font.PLAIN, 20);//设置字体
        jf_1=new JFrame("登陆界面");
        jf_1.setSize(450, 400);
        jf_1.setLocationRelativeTo(null);

        jl_1=new JLabel();

        jl_admin=new JLabel("用户名");
        jl_admin.setBounds(20, 50, 60, 50);
        jl_admin.setFont(font);

        jl_password=new JLabel("密码");
        jl_password.setBounds(20, 120, 60, 50);
        jl_password.setFont(font);

        bt1=new JButton("登录");
        bt1.setBounds(90, 250, 100, 50);
        bt1.setFont(font);

        bt2=new JButton("退出");
        bt2.setBounds(250, 250, 100, 50);
        bt2.setFont(font);

        //加入文本框
        jtext1=new JTextField("");
        jtext1.setBounds(150, 50, 250, 50);
        jtext1.setFont(font);

        jtext2=new JPasswordField("");//密码输入框
        jtext2.setBounds(150, 120, 250, 50);
        jtext2.setFont(font);

        jl_1.add(jtext1);
        jl_1.add(jtext2);

        jl_1.add(jl_admin);
        jl_1.add(jl_password);
        jl_1.add(bt1);
        jl_1.add(bt2);

        jf_1.add(jl_1);
        jf_1.setVisible(true);
        jf_1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        //初始化登陆界面

        final setupframe hl =new setupframe();
        /**
         * 处理点击事件
         * 1.登陆按钮点击事件，判断数据库连接是否正常，若正常则跳转到主界面
         * 2.退出按钮，直接退出程序
         */
        //登陆点击事件
        ActionListener bt1_ls=new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                String admin=jtext1.getText();
                char[] password=jtext2.getPassword();
                String str=String.valueOf(password);
                //jdbc连接
                String dbUrl="jdbc:mysql://localhost:3306/test1?serverTimezone=UTC";
                String dbUserName=admin;
                String dbPassword=str;
                String jdbcName="com.mysql.cj.jdbc.Driver";
                try{
                Class.forName(jdbcName);
                con=DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
                }
                catch(ClassNotFoundException e) {
                        e.printStackTrace();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                //连接成功
                if(con!=null)
                {
                    mainframe ml=new mainframe();//跳转界面
                    hl.jf_1.dispose();//销毁当前界面
                }
                else {
                    //连接失败
                    int messageType = JOptionPane.INFORMATION_MESSAGE;
                    int optionType = JOptionPane.DEFAULT_OPTION;
                    String message = " 请重新输入!!!";
                    String title = "账号或密码错误";
                    JOptionPane.showConfirmDialog(jf_1, message, title, optionType, messageType);
                }
            }
        };
        bt1.addActionListener(bt1_ls);
        //退出事件的处理
        ActionListener bt2_ls=new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.exit(0);//终止当前程序
            }
        };
        bt2.addActionListener(bt2_ls);
    }
}